<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Os1: g2o::OptimizationAlgorithmDogleg Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Os1
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">OrbSlam2 documentado y modificado</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,'Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classg2o_1_1_optimization_algorithm_dogleg.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classg2o_1_1_optimization_algorithm_dogleg-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">g2o::OptimizationAlgorithmDogleg Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Implementation of Powell's Dogleg Algorithm.  
 <a href="classg2o_1_1_optimization_algorithm_dogleg.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="optimization__algorithm__dogleg_8h_source.html">optimization_algorithm_dogleg.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for g2o::OptimizationAlgorithmDogleg:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classg2o_1_1_optimization_algorithm_dogleg__inherit__graph.svg" width="190" height="216"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for g2o::OptimizationAlgorithmDogleg:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classg2o_1_1_optimization_algorithm_dogleg__coll__graph.svg" width="992" height="606"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a431b0b88011685955381bdeb68bb5390"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a431b0b88011685955381bdeb68bb5390ae098265840915f1d6877b4e27fbec1d8">STEP_UNDEFINED</a>, 
<a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a431b0b88011685955381bdeb68bb5390a02cb99985ea3c35b57591e6c55f5e037">STEP_SD</a>, 
<a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a431b0b88011685955381bdeb68bb5390a27f521fdfb791c330af5e59dd989507d">STEP_GN</a>, 
<a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a431b0b88011685955381bdeb68bb5390a1bc0276b59002bc8892ea9fc39348d1d">STEP_DL</a>
 }<tr class="memdesc:a431b0b88011685955381bdeb68bb5390"><td class="mdescLeft">&#160;</td><td class="mdescRight">type of the step to take  <a href="classg2o_1_1_optimization_algorithm_dogleg.html#a431b0b88011685955381bdeb68bb5390">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a431b0b88011685955381bdeb68bb5390"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classg2o_1_1_optimization_algorithm"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classg2o_1_1_optimization_algorithm')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classg2o_1_1_optimization_algorithm.html">g2o::OptimizationAlgorithm</a></td></tr>
<tr class="memitem:a705d58d7bc19528a8ab718570d090cdf inherit pub_types_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a705d58d7bc19528a8ab718570d090cdf">SolverResult</a> { <a class="el" href="classg2o_1_1_optimization_algorithm.html#a705d58d7bc19528a8ab718570d090cdfa3c3d3db3bae371ad18611e0ec5aa99ef">Terminate</a> =2, 
<a class="el" href="classg2o_1_1_optimization_algorithm.html#a705d58d7bc19528a8ab718570d090cdfa5e94b8ee7748cc4c1a5c86de2e8cc962">OK</a> =1, 
<a class="el" href="classg2o_1_1_optimization_algorithm.html#a705d58d7bc19528a8ab718570d090cdfa375598c3a146bb5116b5d19bb1a88f84">Fail</a> =-1
 }</td></tr>
<tr class="separator:a705d58d7bc19528a8ab718570d090cdf inherit pub_types_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a0ca98964e7bcde0c893eb9d720a26fd1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a0ca98964e7bcde0c893eb9d720a26fd1">lastStep</a> () const</td></tr>
<tr class="memdesc:a0ca98964e7bcde0c893eb9d720a26fd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the type of the last step taken by the algorithm  <a href="#a0ca98964e7bcde0c893eb9d720a26fd1">More...</a><br /></td></tr>
<tr class="separator:a0ca98964e7bcde0c893eb9d720a26fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab332f8fb049d1a1fecba18105083052a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#ab332f8fb049d1a1fecba18105083052a">OptimizationAlgorithmDogleg</a> (<a class="el" href="classg2o_1_1_block_solver_base.html">BlockSolverBase</a> *<a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a85473a4073c76b1a52cf9cf175e31c45">solver</a>)</td></tr>
<tr class="memdesc:ab332f8fb049d1a1fecba18105083052a"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct the Dogleg algorithm, which will use the given <a class="el" href="classg2o_1_1_solver.html" title="Generic interface for a sparse solver operating on a graph which solves one iteration of the lineariz...">Solver</a> for solving the linearized system.  <a href="#ab332f8fb049d1a1fecba18105083052a">More...</a><br /></td></tr>
<tr class="separator:ab332f8fb049d1a1fecba18105083052a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48f424443a7b2b6e8c532204cd7334cd"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a48f424443a7b2b6e8c532204cd7334cd">printVerbose</a> (std::ostream &amp;os) const</td></tr>
<tr class="memdesc:a48f424443a7b2b6e8c532204cd7334cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">called by the optimizer if verbose.  <a href="#a48f424443a7b2b6e8c532204cd7334cd">More...</a><br /></td></tr>
<tr class="separator:a48f424443a7b2b6e8c532204cd7334cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace62fd809c18655bd7ff104285748610"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classg2o_1_1_optimization_algorithm.html#a705d58d7bc19528a8ab718570d090cdf">SolverResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#ace62fd809c18655bd7ff104285748610">solve</a> (int iteration, bool online=false)</td></tr>
<tr class="memdesc:ace62fd809c18655bd7ff104285748610"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solve one iteration.  <a href="#ace62fd809c18655bd7ff104285748610">More...</a><br /></td></tr>
<tr class="separator:ace62fd809c18655bd7ff104285748610"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c6fdb2f8296330fd754d635a67b3696"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a3c6fdb2f8296330fd754d635a67b3696">trustRegion</a> () const</td></tr>
<tr class="memdesc:a3c6fdb2f8296330fd754d635a67b3696"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the diameter of the trust region  <a href="#a3c6fdb2f8296330fd754d635a67b3696">More...</a><br /></td></tr>
<tr class="separator:a3c6fdb2f8296330fd754d635a67b3696"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5ebd46eeca170f6a923c75556504d2b"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#ac5ebd46eeca170f6a923c75556504d2b">~OptimizationAlgorithmDogleg</a> ()</td></tr>
<tr class="separator:ac5ebd46eeca170f6a923c75556504d2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classg2o_1_1_optimization_algorithm_with_hessian')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html">g2o::OptimizationAlgorithmWithHessian</a></td></tr>
<tr class="memitem:aa84732c8554039ba0152693837bd1b4a inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#aa84732c8554039ba0152693837bd1b4a">buildLinearStructure</a> ()</td></tr>
<tr class="separator:aa84732c8554039ba0152693837bd1b4a inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1959727df2b7cf233a171cfed246e9a inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#af1959727df2b7cf233a171cfed246e9a">computeMarginals</a> (<a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; MatrixXd &gt; &amp;spinv, const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;blockIndices)</td></tr>
<tr class="memdesc:af1959727df2b7cf233a171cfed246e9a inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="mdescLeft">&#160;</td><td class="mdescRight">computes the block diagonal elements of the pattern specified in the input and stores them in given <a class="el" href="classg2o_1_1_sparse_block_matrix.html" title="Sparse matrix which uses blocks. ">SparseBlockMatrix</a>.  <a href="classg2o_1_1_optimization_algorithm_with_hessian.html#af1959727df2b7cf233a171cfed246e9a">More...</a><br /></td></tr>
<tr class="separator:af1959727df2b7cf233a171cfed246e9a inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae067a9c2961718dc8a37e3b8478b6d01 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#ae067a9c2961718dc8a37e3b8478b6d01">init</a> (bool online=false)</td></tr>
<tr class="memdesc:ae067a9c2961718dc8a37e3b8478b6d01 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the solver, called once before the first call to <a class="el" href="classg2o_1_1_optimization_algorithm.html#ab174deeeb2551ceaf715ea09f0f9c077" title="Solve one iteration. ">solve()</a>  <a href="classg2o_1_1_optimization_algorithm_with_hessian.html#ae067a9c2961718dc8a37e3b8478b6d01">More...</a><br /></td></tr>
<tr class="separator:ae067a9c2961718dc8a37e3b8478b6d01 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1358f3500efe8b95a5af4a1b0edecdf0 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a1358f3500efe8b95a5af4a1b0edecdf0">OptimizationAlgorithmWithHessian</a> (<a class="el" href="classg2o_1_1_solver.html">Solver</a> *<a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a85473a4073c76b1a52cf9cf175e31c45">solver</a>)</td></tr>
<tr class="separator:a1358f3500efe8b95a5af4a1b0edecdf0 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a655aee24aae72b55f5edafb0a7a15137 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a655aee24aae72b55f5edafb0a7a15137">setWriteDebug</a> (bool <a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#aee8fc3dadc8bfbd50409f2e9940cbebd">writeDebug</a>)</td></tr>
<tr class="memdesc:a655aee24aae72b55f5edafb0a7a15137 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="mdescLeft">&#160;</td><td class="mdescRight">write debug output of the Hessian if system is not positive definite  <a href="classg2o_1_1_optimization_algorithm_with_hessian.html#a655aee24aae72b55f5edafb0a7a15137">More...</a><br /></td></tr>
<tr class="separator:a655aee24aae72b55f5edafb0a7a15137 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85473a4073c76b1a52cf9cf175e31c45 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_solver.html">Solver</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a85473a4073c76b1a52cf9cf175e31c45">solver</a> ()</td></tr>
<tr class="memdesc:a85473a4073c76b1a52cf9cf175e31c45 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the underlying solver used to solve the linear system  <a href="classg2o_1_1_optimization_algorithm_with_hessian.html#a85473a4073c76b1a52cf9cf175e31c45">More...</a><br /></td></tr>
<tr class="separator:a85473a4073c76b1a52cf9cf175e31c45 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ceacb3dddb14121b03e0afe7b7cfeaa inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a3ceacb3dddb14121b03e0afe7b7cfeaa">updateLinearSystem</a> ()</td></tr>
<tr class="separator:a3ceacb3dddb14121b03e0afe7b7cfeaa inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adadb23f135e037ce760f4415a0f26269 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#adadb23f135e037ce760f4415a0f26269">updateStructure</a> (const std::vector&lt; <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> *&gt; &amp;vset, const <a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">HyperGraph::EdgeSet</a> &amp;edges)</td></tr>
<tr class="memdesc:adadb23f135e037ce760f4415a0f26269 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="mdescLeft">&#160;</td><td class="mdescRight">update the structures for online processing  <a href="classg2o_1_1_optimization_algorithm_with_hessian.html#adadb23f135e037ce760f4415a0f26269">More...</a><br /></td></tr>
<tr class="separator:adadb23f135e037ce760f4415a0f26269 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee8fc3dadc8bfbd50409f2e9940cbebd inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#aee8fc3dadc8bfbd50409f2e9940cbebd">writeDebug</a> () const</td></tr>
<tr class="separator:aee8fc3dadc8bfbd50409f2e9940cbebd inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cfed4c23f1b09829cf4857cf2213745 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a9cfed4c23f1b09829cf4857cf2213745">~OptimizationAlgorithmWithHessian</a> ()</td></tr>
<tr class="separator:a9cfed4c23f1b09829cf4857cf2213745 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classg2o_1_1_optimization_algorithm"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classg2o_1_1_optimization_algorithm')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classg2o_1_1_optimization_algorithm.html">g2o::OptimizationAlgorithm</a></td></tr>
<tr class="memitem:a205013e0425b7bbae01cd16caf500ebb inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a205013e0425b7bbae01cd16caf500ebb">OptimizationAlgorithm</a> ()</td></tr>
<tr class="separator:a205013e0425b7bbae01cd16caf500ebb inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a040b3e3fd814d9928fa73ae6e98cedc5 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a040b3e3fd814d9928fa73ae6e98cedc5">optimizer</a> () const</td></tr>
<tr class="memdesc:a040b3e3fd814d9928fa73ae6e98cedc5 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the optimizer operating on  <a href="classg2o_1_1_optimization_algorithm.html#a040b3e3fd814d9928fa73ae6e98cedc5">More...</a><br /></td></tr>
<tr class="separator:a040b3e3fd814d9928fa73ae6e98cedc5 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6ca7a2adbd25615be78316bc811a315 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#ac6ca7a2adbd25615be78316bc811a315">optimizer</a> ()</td></tr>
<tr class="separator:ac6ca7a2adbd25615be78316bc811a315 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a830831cbe8357957188440c2f22bed91 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a830831cbe8357957188440c2f22bed91">printProperties</a> (std::ostream &amp;os) const</td></tr>
<tr class="memdesc:a830831cbe8357957188440c2f22bed91 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">print the properties to a stream in a human readable fashion  <a href="classg2o_1_1_optimization_algorithm.html#a830831cbe8357957188440c2f22bed91">More...</a><br /></td></tr>
<tr class="separator:a830831cbe8357957188440c2f22bed91 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0901951b7accc6744447c82dd043a07e inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_property_map.html">PropertyMap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a0901951b7accc6744447c82dd043a07e">properties</a> () const</td></tr>
<tr class="memdesc:a0901951b7accc6744447c82dd043a07e inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the properties of the solver  <a href="classg2o_1_1_optimization_algorithm.html#a0901951b7accc6744447c82dd043a07e">More...</a><br /></td></tr>
<tr class="separator:a0901951b7accc6744447c82dd043a07e inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff88a3dc8357c98712ff0047e601bd5e inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#aff88a3dc8357c98712ff0047e601bd5e">setOptimizer</a> (<a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> *<a class="el" href="classg2o_1_1_optimization_algorithm.html#a040b3e3fd814d9928fa73ae6e98cedc5">optimizer</a>)</td></tr>
<tr class="memdesc:aff88a3dc8357c98712ff0047e601bd5e inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">specify on which optimizer the solver should work on  <a href="classg2o_1_1_optimization_algorithm.html#aff88a3dc8357c98712ff0047e601bd5e">More...</a><br /></td></tr>
<tr class="separator:aff88a3dc8357c98712ff0047e601bd5e inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa05a6380f936c728a574c7c272bcc524 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#aa05a6380f936c728a574c7c272bcc524">updatePropertiesFromString</a> (const std::string &amp;propString)</td></tr>
<tr class="memdesc:aa05a6380f936c728a574c7c272bcc524 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">update the properties from a string, see <a class="el" href="classg2o_1_1_property_map.html#a0407e6a72afafd608f13cfdffc6ffc06" title="update the map based on a name=value string, e.g., name1=val1,name2=val2 ">PropertyMap::updateMapFromString()</a>  <a href="classg2o_1_1_optimization_algorithm.html#aa05a6380f936c728a574c7c272bcc524">More...</a><br /></td></tr>
<tr class="separator:aa05a6380f936c728a574c7c272bcc524 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2516e3d66596ec9c9dfdd08d48e90f9 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#af2516e3d66596ec9c9dfdd08d48e90f9">~OptimizationAlgorithm</a> ()</td></tr>
<tr class="separator:af2516e3d66596ec9c9dfdd08d48e90f9 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a65f193c6451ffcd2bd6fd8f8d19e2a12"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a65f193c6451ffcd2bd6fd8f8d19e2a12">stepType2Str</a> (int stepType)</td></tr>
<tr class="memdesc:a65f193c6451ffcd2bd6fd8f8d19e2a12"><td class="mdescLeft">&#160;</td><td class="mdescRight">convert the type into an integer  <a href="#a65f193c6451ffcd2bd6fd8f8d19e2a12">More...</a><br /></td></tr>
<tr class="separator:a65f193c6451ffcd2bd6fd8f8d19e2a12"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a225092fe67ce75eb64011c1f45d8d936"><td class="memItemLeft" align="right" valign="top">Eigen::VectorXd&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a225092fe67ce75eb64011c1f45d8d936">_auxVector</a></td></tr>
<tr class="memdesc:a225092fe67ce75eb64011c1f45d8d936"><td class="mdescLeft">&#160;</td><td class="mdescRight">auxilary vector used to perform multiplications or other stuff  <a href="#a225092fe67ce75eb64011c1f45d8d936">More...</a><br /></td></tr>
<tr class="separator:a225092fe67ce75eb64011c1f45d8d936"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacc051a6740fc6017dac7c424dc7df3d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#aacc051a6740fc6017dac7c424dc7df3d">_currentLambda</a></td></tr>
<tr class="memdesc:aacc051a6740fc6017dac7c424dc7df3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">the damping factor to force positive definite matrix  <a href="#aacc051a6740fc6017dac7c424dc7df3d">More...</a><br /></td></tr>
<tr class="separator:aacc051a6740fc6017dac7c424dc7df3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3484b12efddd9fc0051100634effecd6"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a3484b12efddd9fc0051100634effecd6">_delta</a></td></tr>
<tr class="memdesc:a3484b12efddd9fc0051100634effecd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">trust region  <a href="#a3484b12efddd9fc0051100634effecd6">More...</a><br /></td></tr>
<tr class="separator:a3484b12efddd9fc0051100634effecd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf433c824153a7bd76b27690eb53113b"><td class="memItemLeft" align="right" valign="top">Eigen::VectorXd&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#aaf433c824153a7bd76b27690eb53113b">_hdl</a></td></tr>
<tr class="memdesc:aaf433c824153a7bd76b27690eb53113b"><td class="mdescLeft">&#160;</td><td class="mdescRight">final dogleg step  <a href="#aaf433c824153a7bd76b27690eb53113b">More...</a><br /></td></tr>
<tr class="separator:aaf433c824153a7bd76b27690eb53113b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f4ee408fbf3999063d094cf61e852b7"><td class="memItemLeft" align="right" valign="top">Eigen::VectorXd&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a8f4ee408fbf3999063d094cf61e852b7">_hsd</a></td></tr>
<tr class="memdesc:a8f4ee408fbf3999063d094cf61e852b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">steepest decent step  <a href="#a8f4ee408fbf3999063d094cf61e852b7">More...</a><br /></td></tr>
<tr class="separator:a8f4ee408fbf3999063d094cf61e852b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a94c7696f07e3def38ec96a1979babd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt; double &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a3a94c7696f07e3def38ec96a1979babd">_initialLambda</a></td></tr>
<tr class="separator:a3a94c7696f07e3def38ec96a1979babd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6855a511dc998efef7eaa0ef99e1b814"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt; double &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a6855a511dc998efef7eaa0ef99e1b814">_lamdbaFactor</a></td></tr>
<tr class="separator:a6855a511dc998efef7eaa0ef99e1b814"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeab37f3f587dc8b37b5a42d36fd8217c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#aeab37f3f587dc8b37b5a42d36fd8217c">_lastNumTries</a></td></tr>
<tr class="separator:aeab37f3f587dc8b37b5a42d36fd8217c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bf898af0087c0ed8287d0cd13e4c943"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a3bf898af0087c0ed8287d0cd13e4c943">_lastStep</a></td></tr>
<tr class="memdesc:a3bf898af0087c0ed8287d0cd13e4c943"><td class="mdescLeft">&#160;</td><td class="mdescRight">type of the step taken by the algorithm  <a href="#a3bf898af0087c0ed8287d0cd13e4c943">More...</a><br /></td></tr>
<tr class="separator:a3bf898af0087c0ed8287d0cd13e4c943"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5993c68e69cd037b1420b4addf9f7e50"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt; int &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#a5993c68e69cd037b1420b4addf9f7e50">_maxTrialsAfterFailure</a></td></tr>
<tr class="separator:a5993c68e69cd037b1420b4addf9f7e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae77ffaea89872affeb61f122f20efeb9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt; double &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#ae77ffaea89872affeb61f122f20efeb9">_userDeltaInit</a></td></tr>
<tr class="separator:ae77ffaea89872affeb61f122f20efeb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af921ebbebaf059f73e410fc751616ec2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html#af921ebbebaf059f73e410fc751616ec2">_wasPDInAllIterations</a></td></tr>
<tr class="memdesc:af921ebbebaf059f73e410fc751616ec2"><td class="mdescLeft">&#160;</td><td class="mdescRight">the matrix we solve was positive definite in all iterations -&gt; if not apply damping  <a href="#af921ebbebaf059f73e410fc751616ec2">More...</a><br /></td></tr>
<tr class="separator:af921ebbebaf059f73e410fc751616ec2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classg2o_1_1_optimization_algorithm_with_hessian"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classg2o_1_1_optimization_algorithm_with_hessian')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html">g2o::OptimizationAlgorithmWithHessian</a></td></tr>
<tr class="memitem:a88a2d1dccee8f7481ece407f2681a151 inherit pro_attribs_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_solver.html">Solver</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a88a2d1dccee8f7481ece407f2681a151">_solver</a></td></tr>
<tr class="separator:a88a2d1dccee8f7481ece407f2681a151 inherit pro_attribs_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dd1e4e8dc2d09233c40de02b2c9fe8c inherit pro_attribs_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt; bool &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a6dd1e4e8dc2d09233c40de02b2c9fe8c">_writeDebug</a></td></tr>
<tr class="separator:a6dd1e4e8dc2d09233c40de02b2c9fe8c inherit pro_attribs_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classg2o_1_1_optimization_algorithm"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classg2o_1_1_optimization_algorithm')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classg2o_1_1_optimization_algorithm.html">g2o::OptimizationAlgorithm</a></td></tr>
<tr class="memitem:a6017c344be0d9f09d6674849849c6b60 inherit pro_attribs_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a6017c344be0d9f09d6674849849c6b60">_optimizer</a></td></tr>
<tr class="memdesc:a6017c344be0d9f09d6674849849c6b60 inherit pro_attribs_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">the optimizer the solver is working on  <a href="classg2o_1_1_optimization_algorithm.html#a6017c344be0d9f09d6674849849c6b60">More...</a><br /></td></tr>
<tr class="separator:a6017c344be0d9f09d6674849849c6b60 inherit pro_attribs_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae37b494f69b483a3fcafa944e987e325 inherit pro_attribs_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_property_map.html">PropertyMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#ae37b494f69b483a3fcafa944e987e325">_properties</a></td></tr>
<tr class="memdesc:ae37b494f69b483a3fcafa944e987e325 inherit pro_attribs_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">the properties of your solver, use this to store the parameters of your solver  <a href="classg2o_1_1_optimization_algorithm.html#ae37b494f69b483a3fcafa944e987e325">More...</a><br /></td></tr>
<tr class="separator:ae37b494f69b483a3fcafa944e987e325 inherit pro_attribs_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation of Powell's Dogleg Algorithm. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a431b0b88011685955381bdeb68bb5390"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>type of the step to take </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a431b0b88011685955381bdeb68bb5390ae098265840915f1d6877b4e27fbec1d8"></a>STEP_UNDEFINED&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="a431b0b88011685955381bdeb68bb5390a02cb99985ea3c35b57591e6c55f5e037"></a>STEP_SD&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="a431b0b88011685955381bdeb68bb5390a27f521fdfb791c330af5e59dd989507d"></a>STEP_GN&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="a431b0b88011685955381bdeb68bb5390a1bc0276b59002bc8892ea9fc39348d1d"></a>STEP_DL&#160;</td><td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab332f8fb049d1a1fecba18105083052a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">g2o::OptimizationAlgorithmDogleg::OptimizationAlgorithmDogleg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_block_solver_base.html">BlockSolverBase</a> *&#160;</td>
          <td class="paramname"><em>solver</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>construct the Dogleg algorithm, which will use the given <a class="el" href="classg2o_1_1_solver.html" title="Generic interface for a sparse solver operating on a graph which solves one iteration of the lineariz...">Solver</a> for solving the linearized system. </p>

</div>
</div>
<a id="ac5ebd46eeca170f6a923c75556504d2b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">g2o::OptimizationAlgorithmDogleg::~OptimizationAlgorithmDogleg </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a0ca98964e7bcde0c893eb9d720a26fd1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int g2o::OptimizationAlgorithmDogleg::lastStep </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>return the type of the last step taken by the algorithm </p>

</div>
</div>
<a id="a48f424443a7b2b6e8c532204cd7334cd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizationAlgorithmDogleg::printVerbose </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>called by the optimizer if verbose. </p>
<p>re-implement, if you want to print something </p>

<p>Reimplemented from <a class="el" href="classg2o_1_1_optimization_algorithm.html#a6683d35e67402b50924bc4744b6e282a">g2o::OptimizationAlgorithm</a>.</p>

</div>
</div>
<a id="ace62fd809c18655bd7ff104285748610"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a705d58d7bc19528a8ab718570d090cdf">OptimizationAlgorithm::SolverResult</a> g2o::OptimizationAlgorithmDogleg::solve </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>iteration</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>online</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Solve one iteration. </p>
<p>The <a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> running on-top will call this for the given number of iterations. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iteration</td><td>indicates the current iteration </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classg2o_1_1_optimization_algorithm.html#ab174deeeb2551ceaf715ea09f0f9c077">g2o::OptimizationAlgorithm</a>.</p>

</div>
</div>
<a id="a65f193c6451ffcd2bd6fd8f8d19e2a12"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char * g2o::OptimizationAlgorithmDogleg::stepType2Str </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>stepType</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>convert the type into an integer </p>

</div>
</div>
<a id="a3c6fdb2f8296330fd754d635a67b3696"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::OptimizationAlgorithmDogleg::trustRegion </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>return the diameter of the trust region </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a225092fe67ce75eb64011c1f45d8d936"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Eigen::VectorXd g2o::OptimizationAlgorithmDogleg::_auxVector</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>auxilary vector used to perform multiplications or other stuff </p>

</div>
</div>
<a id="aacc051a6740fc6017dac7c424dc7df3d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::OptimizationAlgorithmDogleg::_currentLambda</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>the damping factor to force positive definite matrix </p>

</div>
</div>
<a id="a3484b12efddd9fc0051100634effecd6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::OptimizationAlgorithmDogleg::_delta</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>trust region </p>

</div>
</div>
<a id="aaf433c824153a7bd76b27690eb53113b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Eigen::VectorXd g2o::OptimizationAlgorithmDogleg::_hdl</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>final dogleg step </p>

</div>
</div>
<a id="a8f4ee408fbf3999063d094cf61e852b7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Eigen::VectorXd g2o::OptimizationAlgorithmDogleg::_hsd</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>steepest decent step </p>

</div>
</div>
<a id="a3a94c7696f07e3def38ec96a1979babd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt;double&gt;* g2o::OptimizationAlgorithmDogleg::_initialLambda</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a6855a511dc998efef7eaa0ef99e1b814"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt;double&gt;* g2o::OptimizationAlgorithmDogleg::_lamdbaFactor</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="aeab37f3f587dc8b37b5a42d36fd8217c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int g2o::OptimizationAlgorithmDogleg::_lastNumTries</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a3bf898af0087c0ed8287d0cd13e4c943"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int g2o::OptimizationAlgorithmDogleg::_lastStep</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>type of the step taken by the algorithm </p>

</div>
</div>
<a id="a5993c68e69cd037b1420b4addf9f7e50"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt;int&gt;* g2o::OptimizationAlgorithmDogleg::_maxTrialsAfterFailure</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ae77ffaea89872affeb61f122f20efeb9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt;double&gt;* g2o::OptimizationAlgorithmDogleg::_userDeltaInit</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="af921ebbebaf059f73e410fc751616ec2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizationAlgorithmDogleg::_wasPDInAllIterations</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>the matrix we solve was positive definite in all iterations -&gt; if not apply damping </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/alejandro/Desarrollo eclipse/os1/Thirdparty/g2o/g2o/core/<a class="el" href="optimization__algorithm__dogleg_8h_source.html">optimization_algorithm_dogleg.h</a></li>
<li>/home/alejandro/Desarrollo eclipse/os1/Thirdparty/g2o/g2o/core/<a class="el" href="optimization__algorithm__dogleg_8cpp.html">optimization_algorithm_dogleg.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceg2o.html">g2o</a></li><li class="navelem"><a class="el" href="classg2o_1_1_optimization_algorithm_dogleg.html">OptimizationAlgorithmDogleg</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
